]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
messageTray: A variable to indicate that the close button was clicked
authorDebarshi Ray <debarshir@gnome.org>
Thu, 6 Sep 2012 09:45:30 +0000 (11:45 +0200)
committerDebarshi Ray <debarshir@gnome.org>
Thu, 6 Sep 2012 10:04:11 +0000 (12:04 +0200)
Otherwise critical resident notifications can not be closed by
clicking the close button.

https://bugzilla.gnome.org/show_bug.cgi?id=683472

js/ui/messageTray.js

index 329b74b5ad5e4ac2dcd0f356c8b57c008d1f5d91..42ce76a5d36cbc36e9098074362f2ad12cfac202 100644 (file)
@@ -1451,6 +1451,7 @@ const MessageTray = new Lang.Class({
         this._pointerInKeyboard = false;
         this._summaryState = State.HIDDEN;
         this._pointerInSummary = false;
+        this._notificationClosed = false;
         this._notificationState = State.HIDDEN;
         this._notificationTimeoutId = 0;
         this._notificationExpandedId = 0;
@@ -1547,9 +1548,13 @@ const MessageTray = new Lang.Class({
 
     _onCloseClicked: function() {
         if (this._notificationState == State.SHOWN) {
+            this._notificationClosed = true;
             this._notification.emit('done-displaying');
+
                 if (!this._notification.resident)
                     this._notification.destroy();
+
+            this._notificationClosed = false;
         }
     },
 
@@ -1913,7 +1918,7 @@ const MessageTray = new Lang.Class({
                                   !(this._pointerInKeyboard && notificationExpanded);
         let notificationLockedOut = this._isScreenLocked && (this._notification && !this._notification.showWhenLocked);
         // TODO: how to deal with locked out notiifcations if want to keep showing notifications?!
-        let notificationMustClose = this._notificationRemoved || notificationLockedOut || (notificationExpired && this._userActiveWhileNotificationShown);
+        let notificationMustClose = this._notificationRemoved || notificationLockedOut || (notificationExpired && this._userActiveWhileNotificationShown) || this._notificationClosed;
         let canShowNotification = notificationsPending && this._summaryState == State.HIDDEN;
 
         if (this._notificationState == State.HIDDEN) {